📌 Dagens plan og mål

1) Enkelt trafikklys
Felles gjennomgang og demo

2) Legge til knappstyring
Utvide kretsen og koden frå (1)

2B) Transistorstyring av LED og PWM
Ny krets og kode

3) Legge til ultralydsensor
Utvide kretsen og koden frå (2)

  • Bli kjend med Arduino Uno og Arduino IDE
  • Trene på kopling og koding av enkle kretsar
  • Koble til meir avanserte komponentar
  • Trene på å jobbe systematisk og undersøkande og dokumentere.

Arduino Uno

HMS

  • INGEN kopling eller endringar når kretsen er under straum
  • Bruk motstandar til LED
  • Ingen mat og drikke i nærleiken av elektronikken
  • Hald arbeidsområdet ryddig

Dokumentasjon

  • Ta bilder av kretsane. Evt video for å visa funksjonar.
  • Stikkord for kva de gjer og kvifor.
  • Koden de skriv skal kommenterast.
  • Me skal jobba med ein tekst/refleksjonsnotat om arbeidet i etterkant (ein annan dag)

Steg 1 - trafikklys

Komponentar

  • 3 LED (raud, gul, grøn)
  • 3 motstandar (\(220\Omega\))
  • Breadboard og leidningar

Kopling

Hugs retning på LED.

Kode (lenke)

// Først gjev me namn til pinnane
// Dette gjer koden lettare å lese og forstå
const int raudLys = 2;    // Raud LED kopla til pin 2
const int gulLys = 3;     // Gul LED kopla til pin 3
const int gronLys = 4;    // Grøn LED kopla til pin 4

void setup() {
  // Her fortel me Arduino at desse pinnane skal vere utgangar
  pinMode(raudLys, OUTPUT);
  pinMode(gulLys, OUTPUT);
  pinMode(gronLys, OUTPUT);
}

void loop() {
  // RAUDT LYS
  digitalWrite(raudLys, HIGH);   // Raudt på
  digitalWrite(gulLys, LOW);     // Gult av
  digitalWrite(gronLys, LOW);    // Grønt av
  delay(4000);                   // Vent 4 sekund
  
  // RAUDT OG GULT LYS
  digitalWrite(gulLys, HIGH);    // Skrur på gult (raudt er fortsatt på)
  delay(1000);                   // Vent 1 sekund
  
  // GRØNT LYS
  digitalWrite(raudLys, LOW);     // Raudt av
  digitalWrite(gulLys, LOW);      // Gult av
  digitalWrite(gronLys, HIGH);    // Grønt på
  delay(4000);                    // Vent 4 sekund
  
  // GULT LYS
  digitalWrite(gronLys, LOW);    // Grønt av
  digitalWrite(gulLys, HIGH);    // Gult på
  delay(1000);                   // Vent 1 sekund
  // Så startar alt på nytt!
}

Steg 2 - knapp

No skal me legga til ein knapp!

Knappen skal:

  • Endre trafikklyset frå raudt til grønt (eller omvendt) når den blir trykt
  • Me bruker intern pullup-motstand i Arduino (de må finne ut kva dette er!)
  • Det skal følge normal trafikklys-sekvens ved endring (gult lys mellom)

Me treng:

  • alt frå steg 1
  • 1 knapp med leidningar

Kopling: Knappen skal koplast til pin 5 og jord

Steg 2 - knapp

🔎 Før de programmerer

  • Kva er ein pullup-motstand?
  • Kvifor treng me pullup-motstand med knappar?
  • Kva betyr “intern pullup”?
  • Kva skjer viss me ikkje bruker pullup?

👀 Sjå på denne koden

  • Kva gjer variabelen erRaudt?
  • Kvifor er knappen LOW når den er trykt?
  • Kva er delay(500) til?

💪 Utfordring

Kan du få knappen til å virke berre når lyset har vore same farge i minst 5 sekund?

Hint: Du må bruke millis() for å måle tid

Steg 2B - Transistor og PWM

På tide å få inn transistoren!

Komponentar

  • 1 NPN-transistor
  • 4-6 like LEDar
  • 1 stk \(1k\Omega\) motstand
  • 1 stk \(220\Omega\) motstand
  • Breadboard og leidningar

Kopling

  1. Transistor

    • Base med 1k motand til P9
    • Emittor til jord
    • Collector til LED
  2. LED

    • Alle LED-minus til kollektor
    • Alle led-plus gjenom \(220\Omega\) til 5V

Steg 2B - Transistor og PWM - PSEUDOKODE

  1. Oppsett:
    • Me bruker pin 9 for transistor (må være PWM-pin)
    • Me bruker pin 5 for knapp med pullup
  2. Når knappen blir trykt:
    • Først: Full styrke på LED-ane i 2 sekund
    • Så: Start dimming
      • Bruk ein loop som går frå 255 ned til 0
      • Bruk analogWrite() for å styre styrken
      • Liten delay() mellom kvar endring
    • Til slutt: Alt av i 1 sekund
  3. Når knappen ikkje er trykt:
    • Alle LED-ar skal vere av

Tips:

  • PWM (analogWrite) bruker verdiar frå 0-255
  • Større tall = sterkare lys
  • Prøv ulike hastigheiter på dimminga

Startkode: lenke

Steg 3 - Ultralydsensor

Oppgåve og kodar

Oppsummert

Startkodar

Oppgåve nivå 3 - Smart trafikklys